package com.liuwei.spring.cloud.junit.leetcode.jdk;


import java.util.PriorityQueue;

public class TopHeap {
    public static void main(String[] args) {
        // 创建最小堆, java 默认创建小顶堆
        // PriorityQueue<Integer> heap = new PriorityQueue<>();
        PriorityQueue<Integer> heap = new PriorityQueue<>((a, b) -> a - b);

        // 创建一个最大堆
        // PriorityQueue<Integer> maxHep = new PriorityQueue<>(Collections.reverseOrder());
        // PriorityQueue<Integer> maxHep = new PriorityQueue<>((a, b) -> b - a);

        // 插入元素
        heap.add(3); // add = offer
        heap.offer(10);
        heap.offer(5);
        heap.offer(15);

        // 查看最小元素（堆顶元素）但不移除
        System.out.println("最小元素：" + heap.peek());

        // 移除最小元素（堆顶元素）
        System.out.println("被移除的最小元素：" + heap.poll());

        // 再次查看最小元素
        System.out.println("最小元素：" + heap.peek());
    }
}